package com.learn.core.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * Description
 *
 * @author zhaohongyu
 * @ClassName LCompetition
 * @date 2021.05.28 10:05
 * @describe 竞赛表
 */
@TableName("l_competition")
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value="LCompetition对象", description="竞赛表")
public class LCompetition implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "competition_id", type = IdType.AUTO)
    private Integer competitionId;

    @ApiModelProperty(value = "竞赛名称")
    @TableField("competition_name")
    private String competitionName;

    @TableField("competition_sort")
    private Integer competitionSort;

    @ApiModelProperty(value = "封面")
    @TableField("competition_cover")
    private String competitionCover;

    @ApiModelProperty(value = "竞赛说明")
    @TableField("competition_explain")
    private String competitionExplain;

    @ApiModelProperty(value = "参加次数限制")
    @TableField("competition_frequency")
    private String competitionFrequency;

    @ApiModelProperty(value = "出题方式")
    @TableField("assign_topic")
    private String assignTopic;

    @ApiModelProperty(value = "随机几份试卷，默认为一份（固定试卷不用填）")
    @TableField("random_several")
    private Integer randomSeveral;

    @ApiModelProperty(value = "答题开始时间")
    @TableField("timing_start_time")
    private Date timingStartTime;

    @ApiModelProperty(value = "答题结束时间")
    @TableField("timing_end_time")
    private Date timingEndTime;

    @ApiModelProperty(value = "离开页面次数")
    @TableField("leave_page")
    private String leavePage;

    @TableField("create_time")
    private Date createTime;

    @TableField("create_user")
    private String createUser;

    @TableField("update_time")
    private Date updateTime;

    @TableField("update_user")
    private String updateUser;

    @TableField(exist = false)
    private LCompetitionTarget competitionTarget;

    @ApiModelProperty(value = "发布时间")
    @TableField("release_time")
    private Date releaseTime;

    @ApiModelProperty(value = "发布状态")
    @TableField("release_state")
    private String releaseState;

    @TableField("fraction_type")
    private String fractionType;

    @TableField("operation_start_time")
    private Date operationStartTime;

    @TableField("operation_end_time")
    private Date operationEndTime;

    @TableField("expert_start_time")
    private Date expertStartTime;

    @TableField("expert_end_time")
    private Date expertEndTime;

    @TableField("competition_type")
    private String competitionType;

    @TableField("competition_state")
    private String competitionState;

    public Integer getCompetitionSort() {
        return competitionSort;
    }

    public void setCompetitionSort(Integer competitionSort) {
        this.competitionSort = competitionSort;
    }

    @TableField(exist = false)
    private List<LCompetitionQuestion> competitionQuestionList;

    public List<LCompetitionQuestion> getCompetitionQuestionList() {
        return competitionQuestionList;
    }

    public void setCompetitionQuestionList(List<LCompetitionQuestion> competitionQuestionList) {
        this.competitionQuestionList = competitionQuestionList;
    }

    public Date getOperationStartTime() {
        return operationStartTime;
    }

    public void setOperationStartTime(Date operationStartTime) {
        this.operationStartTime = operationStartTime;
    }

    public Date getOperationEndTime() {
        return operationEndTime;
    }

    public void setOperationEndTime(Date operationEndTime) {
        this.operationEndTime = operationEndTime;
    }

    public Date getExpertStartTime() {
        return expertStartTime;
    }

    public void setExpertStartTime(Date expertStartTime) {
        this.expertStartTime = expertStartTime;
    }

    public Date getExpertEndTime() {
        return expertEndTime;
    }

    public void setExpertEndTime(Date expertEndTime) {
        this.expertEndTime = expertEndTime;
    }

    public String getCompetitionType() {
        return competitionType;
    }

    public void setCompetitionType(String competitionType) {
        this.competitionType = competitionType;
    }

    public String getCompetitionState() {
        return competitionState;
    }

    public void setCompetitionState(String competitionState) {
        this.competitionState = competitionState;
    }

    public String getFractionType() {
        return fractionType;
    }

    public void setFractionType(String fractionType) {
        this.fractionType = fractionType;
    }

    public Date getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(Date releaseTime) {
        this.releaseTime = releaseTime;
    }

    public String getReleaseState() {
        return releaseState;
    }

    public void setReleaseState(String releaseState) {
        this.releaseState = releaseState;
    }

    public LCompetitionTarget getCompetitionTarget() {
        return competitionTarget;
    }

    public void setCompetitionTarget(LCompetitionTarget competitionTarget) {
        this.competitionTarget = competitionTarget;
    }

    public Integer getCompetitionId() {
        return competitionId;
    }

    public void setCompetitionId(Integer competitionId) {
        this.competitionId = competitionId;
    }

    public String getCompetitionName() {
        return competitionName;
    }

    public void setCompetitionName(String competitionName) {
        this.competitionName = competitionName;
    }

    public String getCompetitionCover() {
        return competitionCover;
    }

    public void setCompetitionCover(String competitionCover) {
        this.competitionCover = competitionCover;
    }

    public String getCompetitionExplain() {
        return competitionExplain;
    }

    public void setCompetitionExplain(String competitionExplain) {
        this.competitionExplain = competitionExplain;
    }

    public String getCompetitionFrequency() {
        return competitionFrequency;
    }

    public void setCompetitionFrequency(String competitionFrequency) {
        this.competitionFrequency = competitionFrequency;
    }

    public String getAssignTopic() {
        return assignTopic;
    }

    public void setAssignTopic(String assignTopic) {
        this.assignTopic = assignTopic;
    }

    public Integer getRandomSeveral() {
        return randomSeveral;
    }

    public void setRandomSeveral(Integer randomSeveral) {
        this.randomSeveral = randomSeveral;
    }

    public Date getTimingStartTime() {
        return timingStartTime;
    }

    public void setTimingStartTime(Date timingStartTime) {
        this.timingStartTime = timingStartTime;
    }

    public Date getTimingEndTime() {
        return timingEndTime;
    }

    public void setTimingEndTime(Date timingEndTime) {
        this.timingEndTime = timingEndTime;
    }

    public String getLeavePage() {
        return leavePage;
    }

    public void setLeavePage(String leavePage) {
        this.leavePage = leavePage;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
}
